/*
 * mp_crypt_main.hpp
 *
 *  Created on: Dec 27, 2014
 *      Author: marc
 */

#ifndef MP_CRYPT_MAIN_HPP_
#define MP_CRYPT_MAIN_HPP_






namespace mp_crypt_h {
struct crypt_type_struct {
        int MP_CRYPTTYPE_UNKNOWN;
        int MP_CRYPTTYPE_NONE;
        int MP_CRYPTTYPE_REVERSE;
        int MP_CRYPTTYPE_BIT_ROT_R;
        int MP_CRYPTTYPE_BIT_ROT_L;
        int MP_CRYPTTYPE_DESLITE;
} mp_crypt_types {0,2,4,8,16,32};
}

#ifndef MP_CRYPTLIB_H_
#define MP_CRYPTLIB_H_

#ifndef MP_CRYPTLIB_INTERNAL_DECLARATION
extern int mp_getVersion(char **);
extern int mp_getEncrypt(char *);
extern int mp_setEncryptType(int);
extern int mp_isMemberIntStructure(int , int *, int);

#else
//avoide name mangling with directive 'C'
#ifdef __cplusplus
extern "C" {
#endif

int mp_getVersion(char **);
int mp_getEncrypt(char *);
int mp_setEncryptType(int);
int mp_isMemberIntStructure(int , int *, int);

#ifdef __cplusplus
}
#endif
#endif /*MP_CRYPTLIB_INTERNAL_DECLARATION*/

#endif /* MP_CRYPT_MAIN_HPP_ */


